An event driven (ED) system is capable of sensing and responding to events by following the decoupled architecture. An Event Processing Network (EPN) is a representation of execution of an ED system. The EPN employs techniques such as detection of complex patterns of a number of events, event correlation and abstraction, event hierarchies, and relationships between events such as causality, membership, and timing, and event-driven processes.
Typically an EPN consists of a set of event processing agents (EPA) or nodes interconnected by communication channels. An EPN executes event processing by creating and selecting dynamic paths among these EPAs based on the need of the business. If there is only one producer of the event and only one receiver of the event, the identification of the path among the EPAs is trivial. The issue is more involved if, based on the event processing requirements, the EPN needs to be modified dynamically. The routing decision at a given node is made based on event information, processing result at the node and/or consulting an external resource such as, for example, an event registry and repository for details.
In the decoupled architecture of the typical ED system, the event producers have no prior knowledge of the event processing agents or event consumers. Typically, an EPN which consists of a set of EPAs may be dynamically wired as and when events arrive or events are received at the EPN. The route taken by any particular event depends on the type of the event, its associated contents and associated metadata. Each of the EPAs participating in the EPN can alter the sequence in which the EPAs are invoked inside the EPN at runtime.